home *** CD-ROM | disk | FTP | other *** search
/ Aminet 22 / Aminet 22 (1997)(GTI - Schatztruhe)[!][Dec 1997].iso / Aminet / dev / e / amigae33a.lha / E_v3.3a / Src.lha / Src / Afc / MGUI_Example1.e < prev    next >
Text File  |  1997-09-09  |  2KB  |  93 lines

  1. OPT OSVERSION=37
  2. OPT LARGE
  3.  
  4. MODULE 'afc/mgui',
  5.        'afc/explain_exception',
  6.        'tools/easyGUI',
  7.        'exec/ports',
  8.        'intuition/intuition'
  9.  
  10. DEF times=0
  11.  
  12. PROC main() HANDLE
  13.   DEF mg=NIL:PTR TO mgui
  14.   DEF win=NIL:PTR TO window
  15.   DEF sig
  16.  
  17.   NEW mg.mgui()
  18.  
  19.   mg.addA('MGUI Main', [ROWS,
  20.                           [SBUTTON, {kill_all}, 'Kill ALL'],
  21.                           [SBUTTON, {newgui}, 'NEW!'],
  22.                           [SBUTTON, {hideall}, 'Hide'],
  23.                           [SBUTTON, {showall}, 'Show']
  24.                        ],
  25.                        [MGUI_MAIN, TRUE,
  26.                         NIL, NIL]
  27.           )
  28.  
  29.   test(mg)
  30.   test(mg)
  31.   test(mg)
  32.  
  33.   IF (win:=OpenWindowTagList(NIL, [WA_WIDTH, 200,
  34.                                WA_HEIGHT, 100,
  35.                                WA_TITLE, 'Click Inside!',
  36.                                WA_IDCMP, IDCMP_MOUSEBUTTONS,
  37.                                NIL, NIL]))=NIL THEN Raise("win")
  38.  
  39.   sig:=win.userport::mp.sigbit
  40.   sig:=Shl(1, sig)
  41.  
  42.   mg.setattrs([MGUI_ADDEXTERNAL, [{click}, sig, [win, win.userport, mg, sig, {win}]],
  43.              0,0])
  44.  
  45.   WHILE (mg.empty() = FALSE)
  46.     mg.message()
  47.   ENDWHILE
  48.  
  49. EXCEPT DO
  50.   IF win THEN CloseWindow(win)
  51.   WriteF('Exiting...\n')
  52.   explain_exception()
  53.  
  54.   END mg
  55.   CleanUp(0)
  56. ENDPROC
  57.  
  58. PROC hideall(gui:PTR TO gui_obj)
  59.   gui.mg.setattrs([MGUI_HIDEALL, TRUE, NIL, NIL])
  60.   gui.mg.first()
  61.   gui.mg.hide(FALSE)
  62. ENDPROC
  63.  
  64. PROC showall(gui:PTR TO gui_obj) IS gui.mg.setattrs([MGUI_HIDEALL, FALSE, NIL, NIL])
  65.  
  66. PROC newgui(gui:PTR TO gui_obj) IS test(gui.mg)
  67.  
  68. PROC kill_all(gui:PTR TO gui_obj) IS gui.mg.clearguis()
  69.  
  70. PROC msg() IS WriteF('Message!\n')
  71.  
  72.  
  73. PROC test(mg:PTR TO mgui)
  74.   DEF gui:PTR TO LONG
  75.  
  76.   gui:=NEW [ROWS,
  77.        NEW   [SBUTTON, {msg}, 'Msg'],
  78.        NEW   [SBUTTON, 1, 'End']
  79.            ]
  80.  
  81.   mg.addA('MGui Power!', gui)
  82.  
  83. ENDPROC
  84.  
  85. PROC click(t:PTR TO LONG)
  86.   DEF x:PTR TO LONG
  87.  
  88.   x:=GetMsg(t[1])
  89.   ReplyMsg(x)
  90.   WriteF('Win Clicked: \d Times!\n', times++)
  91. ENDPROC
  92.  
  93.